1. Field
The present invention generally relates to an apparatus for migration and conversion of software code using a knowledge engine (KE) to identify the source application and to convert the same logic and database to any target application using target specific knowledgebase (KB).
2. Description of the Related Art
Businesses of companies, governments and agencies evolve over the years. So do government regulations. Either or both of these scenarios result in changes, deletions or addition of rules that govern the mode of doing business. Today the useful information that contains the rules of doing business (business knowledge) is embedded in the source code of software applications and their documentation that run any organization's operations. Over the years, however, software application systems have grown beyond just the scope of maintaining system documentation and workings information. These systems have been modified, added to and deleted from as rules have changed; and the result is that they have become too rigid and hard to understand. To add to the problem, not only is the application knowledge distributed over disparate program code, but so are the data structures and data representation schemes this knowledge uses.
The problem with the various technologies available today is that they are limited in terms of their ability to discover, recognize and extract the required knowledge elements from diverse systems. The technologies are also non-flexible and produce proprietary outputs, which are not widely acceptable in the information technology (IT) world.
Another problem is adaptability. None of the available technologies are adaptable and “self learning” thereby limiting their repetitive and long-term applicability and use-ability. The prior solutions available had the following shortcomings: (1) They were unable to perform effectively transform the input data stream due to their limitations of using fixed ‘static’ rules; (2) They further do not ability to arrive at an abstract view for the input data stream, rather they use simple transformation and syntax matching techniques for interpreting input code on purely line-by-line basis and transforming the same; (3) The pattern recognition utilized in prior inventions or tools was not dynamic and hence not able to perform self-interpretation (i.e. interpretation on its own by dynamically looking at parameters); (4) The previous technologies did not provide ability to dynamically (at runtime) “hatch” new patterns, which severely limited their adaptability and hence applicability.